// 通过网页显示 文件或者是目录
const http = require("http");
const fs = require("fs");
const url = require("url");

function removeDir(src){
  let arr=fs.readdirSync(src)
  arr.forEach(item=>{
let url=src+"/"+item
let stat=fs.statSync(url)
if(stat.isFile()){
  fs.unlinkSync(url)
}else{
  console.log(url)
  removeDir(url)
}
  })
  fs.rmdirSync(src)
}





let server = http.createServer((req, res) => {
  res.setHeader("content-type", "text/html;charset=utf-8");
  // 接收path参数
  let query = url.parse(req.url, true).query;

if(typeof query.del!=="undefined"){
  if(fs.existsSync(query.del)){
    let stat=fs.statSync(query.del)
    if(stat.isFile()){
      fs.unlinkSync(query.del)
    }else{
      removeDir(query.del)
    }
  }
}








  let myurl;
  if (typeof query.path !== "undefined") {
    myurl = query.path; // 
  } else {
    myurl = "."; // 获取同级的文件或者是目录
  }

  let arr = fs.readdirSync(myurl);

  let tableStr = "<table><tr><th>文件名</th><th>操作</th></tr>";

  arr.forEach((item) => {
    // 判断，如果是目录 ，那么给a连接跳转；
    let resurl = myurl + "/" + item;
    let stat = fs.statSync(resurl);
    if (stat.isDirectory()) {
      // 是目录
      tableStr += `<tr><td><a href="/?path=${resurl}">${item}</a></td><td><a href="/?del=${resurl}">删除</a></td></tr>`;
    } else {
      // 是文件
      tableStr += `<tr><td>${item}</td><td><a href="/?del=${resurl}">删除</a></td></tr>`;
    }
  });
  tableStr += "</table>";
  res.write(tableStr);
  res.end();
});

server.listen(8080);
